$(function(){
	$('.multi-inputs').each(function(){
		initMultiInputs($(this));
	});
});

function initMultiInputs(container) {
	container.children('.multi-input').each(function(){
		var add = $('<a href="javascript:void(0)" class="btn add">+</a>');
		add
			.appendTo(this)
			.click(function(){
				c = $(this).parent().clone(true);
				$(this).parent().after(c);
				
				hdnId = c.find('input[type=hidden]').eq(0);
				if (hdnId.length>0) {
					if (hdnId.attr('name').match(/\[id\]$/)) {
						hdnId.val('');
					}
				}
				multiInputsIds($(this).parent().parent());
				
				c.find('.datepicker').datepicker('destroy');
				c.find('.datepicker').datepicker();
			});
		
		var del = $('<a href="javascript:void(0)" class="btn del">-</a>');
		del
			.appendTo(this)
			.click(function(){
				$(this).parent().remove();
				multiInputsIds($(this).parent().parent());
			});
	});
}

function multiInputsIds(container) {
	container.children('.multi-input').each(function(index){
		$(this).find('input,select,textarea').each(function(){
			var name = $(this).attr('name');
			if (name.match(/\[\d+\]/)) {
				$(this).attr('name', name.replace(/\[\d+\]/, '['+index+']'));
			}
			
			var id = $(this).attr('id');
			if (id && id.match(/\d+/)) {
				$(this).attr('id', id.replace(/\d+/, index));
			}
		});
		$(this).find('label').each(function(){
			var attrFor = $(this).attr('for');
			if (attrFor) {
				$(this).attr('for', attrFor.replace(/\d+/, index));
			}
		});
	});
}